/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package caintra.Sapra.Pantalla.Prefactura;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.*;
import java.util.HashMap;
import java.util.Map;
import nextapp.echo2.app.ApplicationInstance;
import nextapp.echo2.app.filetransfer.Download;
import nextapp.echo2.app.filetransfer.DownloadProvider;
/**
 *
 * @author cobain
 */
public class iniciarReporte {

    Connection conn = null;
    //JasperReport masterReport = null;
    //Map parametro = new HashMap();
/*
    public iniciarReporte() {
        try {
            Class.forName("com.mysql.jdbc.Driver"); //se carga el driver
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/caintra", "root", "admin");
            JOptionPane.showMessageDialog(null, "Conexión establecida");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public void ejecutarReporte(String id, int vis) {
        try {
            String archivo = "C:/Documents and Settings/Administrador/Escritorio/Reportes/Factura.jasper";
            System.out.println("COMO QUE C::DOCUMENTS NO PUEDE SER " + archivo);
            if (archivo == null) {
                System.out.println("No se encuentra el archivo.");
                System.exit(2);
            }
           JasperReport masterReport = null;
            try {
                masterReport = (JasperReport) JRLoader.loadObject(archivo);
            } catch (JRException e) {
                System.out.println("Error cargando el reporte maestro: " + e.getMessage());
                System.exit(3);
            }
            //este es el parámetro, se pueden agregar más parámetros
            //basta con poner mas parametro.put
            Map parametro = new HashMap();
            parametro.put("practicanteId", id);
            JasperPrint jasperPrint=null;
            //Reporte diseñado y compilado con iReport));
            jasperPrint = JasperFillManager.fillReport(masterReport, parametro, conn);
            //Se lanza el Viewer de Jasper, no termina aplicación al salir


           File objFile=null;

           System.out.println("este es el valor del selectfield"+vis);
            if(vis==0){
             JasperExportManager.exportReportToPdfFile(jasperPrint, "/home/cobain/Escritorio/factura.pdf");
             objFile = new File("/home/cobain/Escritorio/factura.pdf");
             descargarArchivo(objFile);
            }

            JExcelApiExporter xlsExporter=null;
            if(vis==1){                
            xlsExporter = new JExcelApiExporter();
            JRXlsExporter exporterXLS = new JRXlsExporter();
            xlsExporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
            xlsExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.TRUE);
            xlsExporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,"/home/cobain/Escritorio/factura.xls");

             objFile = new File("/home/cobain/Escritorio/factura.xls");
             descargarArchivo(objFile);
                
            }
            
            if(vis==2){
                JasperExportManager.exportReportToHtmlFile(jasperPrint, "/home/cobain/Escritorio/factura.html");
             objFile = new File("/home/cobain/Escritorio/factura.html");
             descargarArchivo(objFile);
               }
   // Si el archivo existe...
   if (objFile.exists()) {
      // ...elimina el archivo y la variable apunta a 'null'
      objFile.delete();
      objFile = null;
   }
   // ...exporta!!!!
    xlsExporter.exportReport();
        } catch (Exception j) {
            System.out.println("Mensaje de Error:" + j.getMessage());
        }
    }


    public void descargarArchivo(File f){
         final byte[] content = new byte[(int) f.length()];
         try{
            FileInputStream inputStream = new FileInputStream(f);
            inputStream.read(content);
            inputStream.close();}catch (Exception e){
                System.out.println("error");
            }
            final String fname=f.getName();
            Download archivo=new Download();
                            archivo.setProvider(new DownloadProvider() {

                                public String getContentType() {
                                            return ".csv";
                                        }

                                        public String getFileName() {
                                            return fname;
                                        }

                                        public int getSize() {
                                            return 0;
                                        }

                                        public void writeFile(OutputStream out) throws IOException {
                                            out.write(content);
                                        }
                                    });
        f.delete();
        archivo.setActive(true);
        ApplicationInstance app = ApplicationInstance.getActive();
        app.getActive().enqueueCommand(archivo);
    }

    public void cerrar() {
        try {
            conn.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }*/
}
